function myNew(constrc, ...args) {
  // 1,2创建一个对象obj， 将obj的[[prototype]]属性指向构造函数的原型对象
  // 即实现：obj._proto_ === constructor。prototype
  const obj = Object.create(constrc.prototype);
  // 3.将constrc内部的this指向这个obj，并执行代码
  // 这个result的值是：如果构造函数里面return一个对象，等于这个对象。否则就是undefined
  const result = constrc.apply(obj, args);
  // 如果没有return 返回obj  有return 返回return的对象
  return result instanceof Object ? result : obj;
}
// 测试用例
function Person(name, age) {
  this.name = name;
  this.age = age;
  // return {
  //   'wzy':'wzy'
  // }
}

const person = myNew(Person, 'tom', 20);
console.log(person);